package it.crosato.stage.server.model.retriever;

import it.crosato.stage.shared.exceptions.NonExistentException;
import it.crosato.stage.shared.exceptions.RetrievingException;

public interface IKGMLRetriever {

	/**
	 * Recupera il file KGML gestendo internamente l'interazione con la banca
	 * dati interna e KEGG.
	 * @param pathway codice della via metabolica del file
	 * @param time tempo di scadenza dell'informazione nella banca dati interna
	 * @return il file KGML sotto forma di stringa
	 * @throws RetrievingException se avvengono problemi nel recupero
	 * @throws NonExistentException se la via metabolica in ingresso non esiste
	 */
	public abstract String getKGML(String pathway, long time) throws RetrievingException,
			NonExistentException;

}